package data.grammar;

// $ANTLR 3.4 C:\\Users\\Charles\\Documents\\Workspaces\\Hultgren\\lant\\ANTLR\\LocData.g 2012-04-28 11:29:53

import org.antlr.runtime.*;

import data.Group;
import event.DebugLogger;

import java.util.Stack;
import java.util.List;
import java.util.ArrayList;

@SuppressWarnings({"all", "warnings", "unchecked"})
public class LocDataLexer extends Lexer {
    public static final int EOF=-1;
    public static final int T__9=9;
    public static final int T__10=10;
    public static final int COMMENT=4;
    public static final int ENDLINE=5;
    public static final int INT=6;
    public static final int TAB=7;
    public static final int WS=8;

    // delegates
    // delegators
    public Lexer[] getDelegates() {
        return new Lexer[] {};
    }

    public LocDataLexer() {} 
    public LocDataLexer(CharStream input) {
        this(input, new RecognizerSharedState());
    }
    public LocDataLexer(CharStream input, RecognizerSharedState state) {
        super(input,state);
    }
    public String getGrammarFileName() { return "C:\\Users\\Charles\\Documents\\Workspaces\\Hultgren\\lant\\ANTLR\\LocData.g"; }
    
    private Group group;
    
    public LocDataLexer(CharStream in, Group group) {
		this(in);
		this.group = group;
	}
    
    @Override
    public void reportError(RecognitionException e) {
    	super.reportError(e);
    	++state.syntaxErrors;
    }
    
    @Override
	public String getErrorMessage(RecognitionException e, String[] tokenNames) {
		return super.getErrorMessage(e, tokenNames) + " (" + group + ")";
	}

    // $ANTLR start "T__9"
    public final void mT__9() throws RecognitionException {
        try {
            int _type = T__9;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // C:\\Users\\Charles\\Documents\\Workspaces\\Hultgren\\lant\\ANTLR\\LocData.g:2:6: ( '+' )
            // C:\\Users\\Charles\\Documents\\Workspaces\\Hultgren\\lant\\ANTLR\\LocData.g:2:8: '+'
            {
            match('+'); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        	// do for sure before leaving
        }
    }
    // $ANTLR end "T__9"

    // $ANTLR start "T__10"
    public final void mT__10() throws RecognitionException {
        try {
            int _type = T__10;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // C:\\Users\\Charles\\Documents\\Workspaces\\Hultgren\\lant\\ANTLR\\LocData.g:3:7: ( ',' )
            // C:\\Users\\Charles\\Documents\\Workspaces\\Hultgren\\lant\\ANTLR\\LocData.g:3:9: ','
            {
            match(','); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        	// do for sure before leaving
        }
    }
    // $ANTLR end "T__10"

    // $ANTLR start "INT"
    public final void mINT() throws RecognitionException {
        try {
            int _type = INT;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // C:\\Users\\Charles\\Documents\\Workspaces\\Hultgren\\lant\\ANTLR\\LocData.g:33:5: ( ( '0' .. '9' )+ )
            // C:\\Users\\Charles\\Documents\\Workspaces\\Hultgren\\lant\\ANTLR\\LocData.g:33:7: ( '0' .. '9' )+
            {
            // C:\\Users\\Charles\\Documents\\Workspaces\\Hultgren\\lant\\ANTLR\\LocData.g:33:7: ( '0' .. '9' )+
            int cnt1=0;
            loop1:
            do {
                int alt1=2;
                int LA1_0 = input.LA(1);

                if ( ((LA1_0 >= '0' && LA1_0 <= '9')) ) {
                    alt1=1;
                }


                switch (alt1) {
            	case 1 :
            	    // C:\\Users\\Charles\\Documents\\Workspaces\\Hultgren\\lant\\ANTLR\\LocData.g:
            	    {
            	    if ( (input.LA(1) >= '0' && input.LA(1) <= '9') ) {
            	        input.consume();
            	    }
            	    else {
            	        MismatchedSetException mse = new MismatchedSetException(null,input);
            	        recover(mse);
            	        throw mse;
            	    }


            	    }
            	    break;

            	default :
            	    if ( cnt1 >= 1 ) break loop1;
                        EarlyExitException eee =
                            new EarlyExitException(1, input);
                        throw eee;
                }
                cnt1++;
            } while (true);


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        	// do for sure before leaving
        }
    }
    // $ANTLR end "INT"

    // $ANTLR start "WS"
    public final void mWS() throws RecognitionException {
        try {
            int _type = WS;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // C:\\Users\\Charles\\Documents\\Workspaces\\Hultgren\\lant\\ANTLR\\LocData.g:36:5: ( ' ' )
            // C:\\Users\\Charles\\Documents\\Workspaces\\Hultgren\\lant\\ANTLR\\LocData.g:36:9: ' '
            {
            match(' '); 

            _channel=HIDDEN;

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        	// do for sure before leaving
        }
    }
    // $ANTLR end "WS"

    // $ANTLR start "COMMENT"
    public final void mCOMMENT() throws RecognitionException {
        try {
            int _type = COMMENT;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // C:\\Users\\Charles\\Documents\\Workspaces\\Hultgren\\lant\\ANTLR\\LocData.g:40:5: ( '//' (~ ( '\\n' | '\\r' ) )* ( '\\r' )? '\\n' )
            // C:\\Users\\Charles\\Documents\\Workspaces\\Hultgren\\lant\\ANTLR\\LocData.g:40:9: '//' (~ ( '\\n' | '\\r' ) )* ( '\\r' )? '\\n'
            {
            match("//"); 



            // C:\\Users\\Charles\\Documents\\Workspaces\\Hultgren\\lant\\ANTLR\\LocData.g:40:14: (~ ( '\\n' | '\\r' ) )*
            loop2:
            do {
                int alt2=2;
                int LA2_0 = input.LA(1);

                if ( ((LA2_0 >= '\u0000' && LA2_0 <= '\t')||(LA2_0 >= '\u000B' && LA2_0 <= '\f')||(LA2_0 >= '\u000E' && LA2_0 <= '\uFFFF')) ) {
                    alt2=1;
                }


                switch (alt2) {
            	case 1 :
            	    // C:\\Users\\Charles\\Documents\\Workspaces\\Hultgren\\lant\\ANTLR\\LocData.g:
            	    {
            	    if ( (input.LA(1) >= '\u0000' && input.LA(1) <= '\t')||(input.LA(1) >= '\u000B' && input.LA(1) <= '\f')||(input.LA(1) >= '\u000E' && input.LA(1) <= '\uFFFF') ) {
            	        input.consume();
            	    }
            	    else {
            	        MismatchedSetException mse = new MismatchedSetException(null,input);
            	        recover(mse);
            	        throw mse;
            	    }


            	    }
            	    break;

            	default :
            	    break loop2;
                }
            } while (true);


            // C:\\Users\\Charles\\Documents\\Workspaces\\Hultgren\\lant\\ANTLR\\LocData.g:40:28: ( '\\r' )?
            int alt3=2;
            int LA3_0 = input.LA(1);

            if ( (LA3_0=='\r') ) {
                alt3=1;
            }
            switch (alt3) {
                case 1 :
                    // C:\\Users\\Charles\\Documents\\Workspaces\\Hultgren\\lant\\ANTLR\\LocData.g:40:28: '\\r'
                    {
                    match('\r'); 

                    }
                    break;

            }


            match('\n'); 

            _channel=HIDDEN;

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        	// do for sure before leaving
        }
    }
    // $ANTLR end "COMMENT"

    // $ANTLR start "ENDLINE"
    public final void mENDLINE() throws RecognitionException {
        try {
            int _type = ENDLINE;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // C:\\Users\\Charles\\Documents\\Workspaces\\Hultgren\\lant\\ANTLR\\LocData.g:44:2: ( ( '\\r' )? '\\n' )
            // C:\\Users\\Charles\\Documents\\Workspaces\\Hultgren\\lant\\ANTLR\\LocData.g:44:4: ( '\\r' )? '\\n'
            {
            // C:\\Users\\Charles\\Documents\\Workspaces\\Hultgren\\lant\\ANTLR\\LocData.g:44:4: ( '\\r' )?
            int alt4=2;
            int LA4_0 = input.LA(1);

            if ( (LA4_0=='\r') ) {
                alt4=1;
            }
            switch (alt4) {
                case 1 :
                    // C:\\Users\\Charles\\Documents\\Workspaces\\Hultgren\\lant\\ANTLR\\LocData.g:44:4: '\\r'
                    {
                    match('\r'); 

                    }
                    break;

            }


            match('\n'); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        	// do for sure before leaving
        }
    }
    // $ANTLR end "ENDLINE"

    // $ANTLR start "TAB"
    public final void mTAB() throws RecognitionException {
        try {
            int _type = TAB;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // C:\\Users\\Charles\\Documents\\Workspaces\\Hultgren\\lant\\ANTLR\\LocData.g:47:5: ( '\\t' )
            // C:\\Users\\Charles\\Documents\\Workspaces\\Hultgren\\lant\\ANTLR\\LocData.g:47:7: '\\t'
            {
            match('\t'); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        	// do for sure before leaving
        }
    }
    // $ANTLR end "TAB"

    public void mTokens() throws RecognitionException {
        // C:\\Users\\Charles\\Documents\\Workspaces\\Hultgren\\lant\\ANTLR\\LocData.g:1:8: ( T__9 | T__10 | INT | WS | COMMENT | ENDLINE | TAB )
        int alt5=7;
        switch ( input.LA(1) ) {
        case '+':
            {
            alt5=1;
            }
            break;
        case ',':
            {
            alt5=2;
            }
            break;
        case '0':
        case '1':
        case '2':
        case '3':
        case '4':
        case '5':
        case '6':
        case '7':
        case '8':
        case '9':
            {
            alt5=3;
            }
            break;
        case ' ':
            {
            alt5=4;
            }
            break;
        case '/':
            {
            alt5=5;
            }
            break;
        case '\n':
        case '\r':
            {
            alt5=6;
            }
            break;
        case '\t':
            {
            alt5=7;
            }
            break;
        default:
            NoViableAltException nvae =
                new NoViableAltException("", 5, 0, input);

            throw nvae;

        }

        switch (alt5) {
            case 1 :
                // C:\\Users\\Charles\\Documents\\Workspaces\\Hultgren\\lant\\ANTLR\\LocData.g:1:10: T__9
                {
                mT__9(); 


                }
                break;
            case 2 :
                // C:\\Users\\Charles\\Documents\\Workspaces\\Hultgren\\lant\\ANTLR\\LocData.g:1:15: T__10
                {
                mT__10(); 


                }
                break;
            case 3 :
                // C:\\Users\\Charles\\Documents\\Workspaces\\Hultgren\\lant\\ANTLR\\LocData.g:1:21: INT
                {
                mINT(); 


                }
                break;
            case 4 :
                // C:\\Users\\Charles\\Documents\\Workspaces\\Hultgren\\lant\\ANTLR\\LocData.g:1:25: WS
                {
                mWS(); 


                }
                break;
            case 5 :
                // C:\\Users\\Charles\\Documents\\Workspaces\\Hultgren\\lant\\ANTLR\\LocData.g:1:28: COMMENT
                {
                mCOMMENT(); 


                }
                break;
            case 6 :
                // C:\\Users\\Charles\\Documents\\Workspaces\\Hultgren\\lant\\ANTLR\\LocData.g:1:36: ENDLINE
                {
                mENDLINE(); 


                }
                break;
            case 7 :
                // C:\\Users\\Charles\\Documents\\Workspaces\\Hultgren\\lant\\ANTLR\\LocData.g:1:44: TAB
                {
                mTAB(); 


                }
                break;

        }

    }


 

}